//*********************************************************
//
//    Copyright (c) Microsoft. All rights reserved.
//    This code is licensed under the Apache License, Version 2.0.
//    THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
//    ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
//    IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
//    PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
//
//*********************************************************

namespace Microsoft.Research.ProvenanceSubscriberCommon.Models
{
    using System;
    using System.Collections.ObjectModel;

    /// <summary>
    /// Model class for ProvenanceInformationModel.
    /// </summary>
    public class ProvenanceInformationModel
    {
        /// <summary>
        /// Gets or sets the JobId.
        /// </summary>
        public string JobId { get; set; }

        /// <summary>
        /// Gets or sets the IsWorkflowEvent.
        /// </summary>
        public bool IsWorkflowEvent { get; set; }

        /// <summary>
        /// Gets or sets the ActivityName.
        /// </summary>
        public string ActivityName { get; set; }

        /// <summary>
        /// Gets or sets the WorkflowName.
        /// </summary>
        public string WorkflowName { get; set; }

        /// <summary>
        /// Gets or sets the Label.
        /// </summary>
        public string Label { get; set; }

        /// <summary>
        /// Gets or sets the current index of the activity.
        /// </summary>
        /// <value>The index of the current.</value>
        public string CurrentIndex { get; set; }

        /// <summary>
        /// Gets or sets the start event order.
        /// </summary>
        /// <value>The start event order.</value>
        public int StartEventOrder { get; set; }

        /// <summary>
        /// Gets or sets the end event order.
        /// </summary>
        /// <value>The end event order.</value>
        public int EndEventOrder { get; set; }

        /// <summary>
        /// Gets or sets the CreatedBy.
        /// </summary>
        public string CreatedBy { get; set; }

        /// <summary>
        /// Gets or sets the ExecutionTime.
        /// </summary>
        public DateTime ExecutionTime { get; set; }

        /// <summary>
        /// Gets or sets the ProcessingStatus.
        /// </summary>
        public ProcessingStatusModel ProcessingStatus { get; set; }

        /// <summary>
        /// Gets or sets the PerformanceDetail.
        /// </summary>
        public PerformanceDetailModel PerformanceDetail { get; set; }

        /// <summary>
        /// Gets or sets the InputOutputParameter.
        /// </summary>
        public InputOutputParameterModel InputOutputParameter { get; set; }

        /// <summary>
        /// Gets or sets the DataProduct.
        /// </summary>
        public DataProductModel DataProduct { get; set; }
    }
}
